﻿///<FileHeader>
///     <FileName>RolePlayerVisibilityDecorator.cs</FileName>
///     <Author>Kiran Chand Palakkattiri</Author>
///     <Project>
///         <Name>Property Visibility Extensions for DSL</Name>
///         <Url>http://kiranchand.codeplex.com</Url>
///     </Project>
///     <CreationDate>September 07, 2009.</CreationDate>
///     <Contents>
///         <Content type="interface" name="IRolePlayerVisibilityDecorator"
///             comments="Visibility decorator for handling the display mode of role player properties"/>
///     </Contents>
///     <Dependencies>
///         <Dependency type="reference" namespace="System" />
///         <Dependency type="reference" namespace="System.Collections.Generic" />
///     </Dependencies>
///     <Modifications/>
///     <Version>1.0.0.0</Version>
///</FileHeader>
using System;
using System.Collections.Generic;

namespace Kiranchand.Dsl.Extensions.PropertyVisibility
{
    /// <summary>
    /// Provides the decorator interface for the advanced type descriptor
    /// to dynamically change the visibility of the role player properties in the 
    /// property grid.
    /// </summary>
    public interface IRolePlayerVisibilityDecorator
    {
        /// <summary>
        /// Gets the visibility mode of the given domain property ids
        /// </summary>
        /// <param name="colDomainProperties">collection of domain properties as enumerable of guid</param>
        /// <returns>a dictionary of the property - display mode map</returns>
        IDictionary<Guid, DisplayMode> GetRolePlayerVisibilityModes(IEnumerable<Guid> colDomainProperties);
    }
}
